package org.sunyu.sunyutest.javase1;

import java.util.Scanner;

/**
 * @Author: Ben
 * @Date: 2019/7/10 15:31
 */
public class Test_2 {
//20.输出矩形、空心矩形、等腰三角形、菱形
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你要创造的矩阵的长：");
        int extent = scanner.nextInt();
        System.out.println("请输入你要创造的矩阵的宽：");
        int width = scanner.nextInt();
        for (int i = 1; i <= width; i++) {
            for (int j = 1; j <= extent; j++) {
                System.out.print("*");
            }
            System.out.print("\n");
        }

        System.out.println("---------------------------------------------------------------------------");

        for (int i = 1; i <= 1; i++) {
            for (int j = 1; j <= extent; j++) {
                System.out.print("*");
            }
        }
        System.out.println();
        for (int i = 2; i <=width-1 ; i++) {
            System.out.print("*");
            for (int j = 2; j <=extent-1 ; j++) {
                System.out.print(" ");
            }
            System.out.println("*");
        }
        for (int i = width; i <=width ; i++) {
            for (int j = 1; j <= extent; j++) {
                System.out.print("*");
            }
        }

        System.out.println("---------------------------------------------------------------------------");
//        for (int i = 0; i <=width ; i++) {
//            for (int j = 1; j <=(extent/2)-i ; j++) {
//                System.out.print(" ");
//            }
//            for (int j = 0; j < ; j++) {
//
//            }
//        }


        int x=10;//输入几层是几层
        int num[][] = new int[x][x];//这个数组有几层
        for(int m=0;m<x;m++)//主要是对数组进行赋值
        {
            for(int n=0;n<=m;n++)//每一层的个数都是小于等于层数的，m代表层数，n代表着第几个数
            {
                if(n==0||m==n)//每一层的开头都是1，m==n的时候也是1,必须要这个，凡事都得有个开头
                {
                    num[m][n]=1;
                }
                else
                    num[m][n]=num[m-1][n-1]+num[m-1][n];//这个就是递推的方法了，例如3=1+2，3的坐标就是3[3,1]=1[2,0]+2[2,1];
            }
        }
        for(int i=0;i<x;i++)//主要是输出数组
        {
            for(int l=i;l<x;l++)//这个主要是打空格，好看一点，去掉就是直角三角形了
            {
                System.out.print(" ");
            }
            for(int j=x-i;j<=x;j++)//这个就是打印数组了，每层循环几次就几个
            {
                System.out.print(num[i][x-j]+" ");//不懂的可以把x替换成10，更加清楚点
            }
            System.out.println();//每层换行
        }

    }
}